package com.zhouhailin;

import java.util.Optional;

/**
 * 转换值，map()方法
 * 1、该方法可以按照一定的规则将原有 Optional对象转换为一个新的 Optional对象，原有的 Optional 对象不会更改。
 *
 * @Author zhouhailin
 * @date 2023/1/19 10:59
 */
public class OptionalMapDemo {
    public static void main(String[] args) {
        String name = "zhouhailin";
        Optional<String> optionalS = Optional.of(name);
        // 将原有的字符串类型类型的 Optional 按照字符串长度重新生成一个新的 Optional 对象，类型为 Integer
        Optional<Integer> integerOptional = optionalS.map(String::length);
        System.out.println(integerOptional.orElse(0));

        // 转为大写，类型是String
        Optional<String> stringOptional = optionalS.map(String::toUpperCase);
        // Optional对象不为null时，获取值：ZHOUHAILIN
        System.out.println(stringOptional.orElse("0"));
    }
}
